July 27, 2020
all()
<table>.objects.all()
SELECT * FROM <table>
💡
all()
+limit
- 전체 데이터 중 원하는 개수 만큼 조회 할 수 있다.
처음 부터 원하는 개수를 조회 할 때 :
<table>.objects.all()[:10]
👉 전체 결과에서 처음 부터 10개의 결과만 조회
원하는 위치에서 부터 원하는 개수를 조회 할 때 :
<table>.objects.all()[5:10]
👉 전체 결과 중 5번째 부터 10개의 결과만 조회
get()
<table>.objects.get(<field> = <value>)
만약 조회된 값이 다수일 경우 에러가 발생하기 되니 주의한다.
filter()
를 사용 할 수 있다.filter()
<table>.objects.filter(<field> = <value>)
SELECT * FROM <table> WHERE <column> = <value>
💡
filter()
+exists()
- 만약 테이블에 데이터가 있는지 확인하려면
exists()
을 사용한다.<table>.objects.filter(<field> = <value>).exists()
- 만약 찾고자 하는 데이터가 없다면 에러를 반환한다.
create()
create()
<table>.objects.create(<field> = <value>)
또는 다음과 같이 추가 가능하다.
variable = Table(field = value)
variable.save()
delete()
삭제한 데이터를 지정해줘야 한다.
👉 <table>.objects.get(<field> = <value>).delete()
만약 모든 데이터를 삭제하고 싶다면 다음과 같이 사용한다.
👉 <table>.objects.all().delete()
또는 다음과 같이 사용한다.
variable = Table.objects.get(field = value)
variable.delete()
update()
<table>.objects.update(<field> = <value>)
또한 save()
를 통해서도 수정이 가능하며 다음과 같이 사용 할 수 있다.
# 단일 값을 수정
var1 = Table.objects.get(field = value)
var1.field = update_value
var1.save()
# 모든 값을 수정
var2 = Table.objects.all()
for i in var2:
var2.field = update_value
var2.save()
# 각 Model Instance 별로 DB에 수정요청을 하여 성능저하 이슈가 있음
다만, 위의 방법중 특히 모든 값을 수정하는 경우 각 모델 인스턴스별로 DB에 수정요청을 하기때문에 성능저하를 일으킬 수 있으니 모든 값을 수정할때는 다음과 같이 update()
를 사용한다.
var = Table.objects.all()
var.update(field = update_value)